package com.lqk.netty.buf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

public class NettyByteBuf01 {
    public static void main(String[] args) {

        // 创建一个ByteBuf
        /**
         * 说明
         *  1. 创建一个对象，包含一个数组arr，是一个byte[10]
         *  2. 在Netty的Buf中不需要flip进行模式切换，底层维护了 readerIndex（下一个读的位置） 和 writerIndex （下一个写的位置）
         *  3. 通过 readerIndex 和 writerIndex 和 capacity，将Buf分成三个区域
         *      0--> readerIndex 已经读取的区域
         *      readerIndex --> writerIndex 可读区域
         *      writerIndex --> capacity 可写区域
         */
        ByteBuf byteBuf = Unpooled.buffer(10);
        for (int i = 0; i < 6; i++) {
            byteBuf.writeByte(i);
        }

        System.out.println("capacity="+byteBuf.capacity());

        // 输出
//        for (int i = 0; i < byteBuf.capacity(); i++) {
//            System.out.println(byteBuf.getByte(i));
//        }

        int i1 = byteBuf.readableBytes();   // 可读数据的长度/大小
        System.out.println(byteBuf.readableBytes());

        for (int i = 0; i < i1; i++) {
            System.out.println(byteBuf.readByte());
        }
        System.out.println("执行完毕！！！");

    }
}
